With the emergence of the Internet, there is considerable incentive to create semantically rich databases (or knowledge bases) for diverse applications ranging from electronic product catalogs and product configurators to medical terminology in clinical information systems. Database systems have been developed to handle such semantically rich database systems.
One type of database system is a hierarchial system. A hierarchy is a common method for organizing information. For example, the table of contents for a book, an index system for a library and a function chart for a company's departments are all hierarchical arrangements of information. A hierarchy comprises nodes and their interrelationships. When a hierarchy interrelates structured nodes, those nodes are commonly called concepts (other terms used for nodes include frames, individuals and classes). The structure of a concept is described by the use of characteristics called properties.
The meaning given to these concepts and their hierarchical interrelationship depends on the domain that is being represented by the hierarchy or structure. Structures comprising concepts and their interrelationships are commonly known as "part-of" decomposition hierarchies and "is-a" abstraction hierarchies.
A "part-of" decomposition hierarchy can be found in corporation departmental organization charts. Each sub-department is part-of a super-department. For example, the Electronic Catalog Division and Electronic Transaction Division are part-of the Electronic commerce Division. The Electronic Commerce Division and Information Distribution Division are part-of the Internet Division which is in turn part-of the Software Division.
An "is-a" abstraction hierarchy can be found in biological animal and organism classification charts. Each sub-abstraction is-a more specific (specialized) description of a super-abstraction. For example, the family of lions and the family of tigers are more specific descriptions of the family of large cats. The family of large cats and the family of humans are more specific descriptions of the family of mammals. The sub-concepts in these hierarchies usually share common properties with their super-concepts. To minimize the amount of stored data common properties are defined in a super-concept and sub-concepts "inherit" (access, use) the super-concept's properties as part of their own definitions. Hierarchies with this characteristic are termed inheritance hierarchies. When a sub-concept interrelates to only one super-concept, the hierarchy is termed a single inheritance concept hierarchy, and when a sub-concept interrelates to more than one super-concept, the hierarchy is termed a multiple inheritance concept hierarchy. An example of a multiple inheritance concept hierarchy is found in the above mentioned U.S. application, Ser. No. 08/4712,414, abandoned.
A way of visualizing hierarchical data structures is by using a tree view as shown in FIG. 1. One method for visualizing any structured node in the tree view of FIG. 1, in combination with that node's properties, would be to use a concept view as shown in FIG. 2. The example given in FIG. 2 is for the "Mobile" structured concept 101 of FIG. 1.
A user can view the concept hierarchy shown in FIG. 1 by starting at the root concepts "Company" or "Function" and continue thru the sub-concepts until the leaf concepts are reached. At each concept, a concept view, such as the one of FIG. 2, can be consulted for a detailed examination of the structure of the concept. Switching back and forth between hierarchial and concept type views is a popular method of investigating concept hierarchies.
The data structure shown in FIGS. 1 and 2 is created and maintained by either or both a human agent using a Graphic User Interface (GUI) (e.g. an information architect) or a computer agent (a software program acting on behalf of a human). A human or agent incrementally creates the data structure, representing some domain in the real world, by first adding base concepts and their property definitions. Ideally, this creation process would continue until the entire data structure is created and the whole domain is succinctly represented. In reality, however, the process of realizing a final data structure is one of continual revision and refinement. There is a continual process of creation and modification as new concepts are introduced and old ones modified.
Because of the nature of hierarchical data structures with inheritance characteristics, many of the concepts are highly interrelated and their properties are non-localized. The creation of such data structures is a process of building increasingly complex data structures upon previously created data structures.
Software checkers for internal consistency of the database are usually implemented as part of the system source code.
System triggers, which go into effect when a user attempts to modify data with an insert, delete or update command, can also be used. Both can prevent incorrect changes to maintain integrity of the database.
For a number of reasons, the above described means of checking have proven to be extremely complex in implementation in connection with semantic databases. The first reason is that ensuring correctness (i.e., Internal Consistency) of content in a semantic database is more complicated than for traditional databases due to several factors: the complexity of the representation formalism used to express database content; the complexity of the content itself; and the complexity of operations to modify the database.
A second reason why the previously described means of checking have been complex is that the scope and extent of consistency checking which is required for a semantic database can vary:
a) as the representation formalism evolves (e.g., enhanced expressiveness enables more powerful reasoning services such as automatic classification which in turn imposes more stringent requirements on the content); PA1 b) across different applications of the semantic database system (an application for computer system configuration imposes more rigorous requirements than an application for selection of pre-configured systems); PA1 c) and across different phases of development within a single application (e.g., minimal checking may be appropriate when initializing a semantic database by importing data en masse from external sources. More substantial checking may be desirable later on, as the data is "cleaned up" under the auspices of the semantic database system).
Therefore, it is an object of the present invention to provide a computer directed method for modifying semantic databases.
It is another object of the present invention to maintain semantic coherence when modifying semantic databases.